home *** CD-ROM | disk | FTP | other *** search
- /*==================================================================
- File: ZStringTool.h
-
- Contains: Tool-related code for building ZString override
- libraries, etc.
-
- Written by: Eric Traut
-
- Copyright: 2000 Connectix Corporation
- ==================================================================*/
-
- #ifndef __ZSTRINGTOOL__
- #define __ZSTRINGTOOL__
-
- #include "ZStringData.h"
- #include "ZStringDictionary.h"
- #include "ZStringParser.h"
- #include "ZString.h"
-
- #include <stdio.h>
-
- typedef Z_UInt16 ZStringToolState;
- enum
- {
- kStringUnique = 0x0000,
- kStringDuplicate = 0x0001,
- kStringBadlyFormed = 0x0002,
- kStringHasHighASCII = 0x0004,
-
- kStringLimitWarning = 0x0010,
- kStringChangeWarning = 0x0020,
- kStringBreakWarning = 0x0040,
- kStringPossibleTagWarning = 0x0080,
-
- kStringAdded = 0x0100,
- kStringDeleted = 0x0200,
- kStringModifiedNew = 0x0400,
- kStringModifiedOld = 0x0800,
-
- kAllStringWarnings = kStringHasHighASCII | kStringChangeWarning | kStringLimitWarning | kStringBreakWarning | kStringPossibleTagWarning,
- kAllStringErrors = kStringDuplicate | kStringBadlyFormed | kStringAdded | kStringDeleted | kStringModifiedOld | kStringModifiedNew
- };
-
- class ZToolEntry
- {
- public:
- ZStringParseInfo mParseInfo;
- ZStringToolState mStringState;
- ZToolEntry * mNext;
- };
-
- /*==================================================================
- ZStringTool
- ==================================================================*/
-
- class ZStringTool
- {
- public:
- // Construction & Destruction
- ZStringTool();
-
- virtual
- ~ZStringTool();
-
- ZToolEntry *
- LookUpString(
- const ZStringParseInfo & inParseInfo);
-
- void
- RegisterString(
- const ZStringParseInfo & inParseInfo,
- ZStringToolState inState);
-
- void
- ProcessBinaries(
- const char * inNewStart,
- Z_UInt32 inNewLength,
- const char * inOldStart,
- Z_UInt32 inOldLength,
- const ZToolOptions & inOptions);
-
-
- Z_Boolean
- PrintReport(
- FILE * inFile,
- const ZToolOptions & inOptions);
-
- Z_Boolean
- CreateOverrideDictionary(
- FILE * inFile);
-
- Z_Boolean
- CreateOverrideDictionary(
- char * & outDictionary,
- Z_UInt32 & outLength);
-
- private:
- char *
- AddEntryToOverrideDictionary(
- char * inOutputPtr,
- const ZToolEntry & inEntry);
-
- void
- ProcessBinary(
- const void * inStart,
- Z_UInt32 inLength,
- ZStringToolState inInitialState,
- const ZToolOptions & inOptions);
-
- void
- PrintEntry(
- ZToolEntry & inEntry,
- FILE * inFile,
- Z_Boolean inPrintWarnings);
-
- Z_Boolean
- NamedStringsMatch(
- const ZStringParseInfo & inString1,
- const ZStringParseInfo & inString2);
-
- Z_Boolean
- CreateSortedStringList(
- Z_Boolean inCategorizeOutput);
-
- static int
- CompareToolEntries(
- Z_UInt16 inState,
- const void * inNode1,
- const void * inNode2);
-
- static int
- CompareCategoryFunction(
- const void * inNode1,
- const void * inNode2);
-
- static int
- CompareStringFunction(
- const void * inNode1,
- const void * inNode2);
-
- ZToolEntry * mZStringToolHash[kZDictionaryHashEntries];
- ZToolEntry ** mSortedList;
- Z_UInt32 mStringRegisterCount;
- Z_UInt32 mStringLengthSum;
- Z_Boolean mProcessingNew;
- };
-
-
-
- #endif // __ZSTRINGTOOL__
-
-
-
-